package com.example.shuiyin.util;

import com.example.shuiyin.dto.FileDto;
import com.example.shuiyin.dto.FileInfoDTO;
import com.example.shuiyin.entity.FileInfo;

public class DtoConverters {

    /**
     * 将FileInfo实体转换为FileDto
     */
    public static FileDto convertToFileDto(FileInfo fileInfo) {
        if (fileInfo == null) {
            return null;
        }
        
        return FileDto.builder()
                .id(fileInfo.getId())
                .fileId(fileInfo.getFileId())
                .fileName(fileInfo.getFileName())
                .originalName(fileInfo.getOriginalName())
                .contentType(fileInfo.getContentType())
                .fileSize(fileInfo.getFileSize())
                .status(fileInfo.getStatus())
                .uploadTime(fileInfo.getUploadTime())
                .url(fileInfo.getUrl())
                .thumbnailUrl(fileInfo.getThumbnailUrl())
                .build();
    }
    
    /**
     * 将FileInfoDTO转换为FileDto
     */
    public static FileDto convertToFileDto(FileInfoDTO fileInfoDTO) {
        if (fileInfoDTO == null) {
            return null;
        }
        
        return FileDto.builder()
                .id(fileInfoDTO.getId())
                .fileId(fileInfoDTO.getFileId())
                .fileName(fileInfoDTO.getFileName())
                .originalName(fileInfoDTO.getOriginalName())
                .contentType(fileInfoDTO.getContentType())
                .fileSize(fileInfoDTO.getFileSize())
                .status(fileInfoDTO.getStatus())
                .uploadTime(fileInfoDTO.getUploadTime())
                .url(fileInfoDTO.getUrl())
                .thumbnailUrl(fileInfoDTO.getThumbnailUrl())
                .build();
    }
    
    /**
     * 将FileDto转换为FileInfoDTO
     */
    public static FileInfoDTO convertToFileInfoDTO(FileDto fileDto) {
        if (fileDto == null) {
            return null;
        }
        
        return FileInfoDTO.builder()
                .fileId(fileDto.getFileId())
                .fileName(fileDto.getFileName())
                .originalName(fileDto.getOriginalName())
                .contentType(fileDto.getContentType())
                .fileSize(fileDto.getFileSize())
                .status(fileDto.getStatus())
                .uploadTime(fileDto.getUploadTime())
                .url(fileDto.getUrl())
                .thumbnailUrl(fileDto.getThumbnailUrl())
                .build();
    }
} 